home *** CD-ROM | disk | FTP | other *** search
- #!/usr/bin/python
-
- # Extract the fields of a problem report into separate files into a new or
- # empty directory.
- #
- # Copyright (c) 2006 Canonical Ltd.
- # Author: Martin Pitt <martin.pitt@ubuntu.com>
- #
- # This program is free software; you can redistribute it and/or modify it
- # under the terms of the GNU General Public License as published by the
- # Free Software Foundation; either version 2 of the License, or (at your
- # option) any later version. See http://www.gnu.org/copyleft/gpl.html for
- # the full text of the license.
-
- import sys, os, os.path, gettext
- from apport import unicode_gettext as _
-
- import problem_report
-
- gettext.textdomain('apport')
-
- if len(sys.argv) != 3:
- print _('Usage: %s <report> <target directory>') % sys.argv[0]
- sys.exit(1)
-
- report = sys.argv[1]
- dir = sys.argv[2]
-
- # ensure that the directory does not yet exist or is empty
- try:
- if os.path.isdir(dir):
- if os.listdir(dir):
- print >> sys.stderr, _('Destination directory exists and is not empty.')
- sys.exit(1)
- else:
- os.mkdir(dir)
- except OSError, e:
- print >> sys.stderr, e
- sys.exit(1)
-
- pr = problem_report.ProblemReport()
- if report == '-':
- pr.load(sys.stdin)
- else:
- try:
- pr.load(open(report))
- except IOError, e:
- print >> sys.stderr, e
- sys.exit(1)
- for k in pr:
- open(os.path.join(dir, k), 'w').write(pr[k])
-